<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Apache module mod_isapi</TITLE>
</HEAD>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>
<!--#include virtual="header.html" -->

<H1 ALIGN="CENTER">Module mod_isapi</H1>

<P>This module is contained in the <CODE>mod_isapi.c</CODE> file, and is
   compiled in by default. It provides support for ISAPI Extensions when
   running under Microsoft Windows. Any document with a handler of
   <CODE>isapi-isa</CODE> will be processed by this module.

<H2>Purpose</H2>

<P>This module implements the <A
   HREF="http://www.microsoft.com/win32dev/apiext/isapimrg.htm">ISAPI
   Extension</A> API. It allows Internet Server Applications (i.e., ISAPI
   Extensions) to be used with Apache for Windows.

<H2>Usage</H2>

<P>In the server configuration file, add a handler called
   <CODE>isapi-isa</CODE>, and map it to files with a <CODE>.DLL</CODE>
   extension. In other words:</P>
<PRE>
    AddHandler isapi-isa dll
</PRE>
<P>Now simply place the ISA DLLs into your document root, and they will
   be loaded when their URLs are accessed.</P>

<P>ISAPI Extensions are governed by the same restrictions as CGI
   scripts. That is, <CODE>Options ExecCGI</CODE> must be active in the
   directory that contains the ISA.</P>

<H2>Notes</H2>

<P>Apache's ISAPI implementation conforms to all of the ISAPI 2.0
   specification, except for the "Microsoft-specific" extensions dealing
   with asynchronous I/O. Apache's I/O model does not allow asynchronous
   reading and writing in a manner that the ISAPI could access. If an ISA
   tries to access async I/O, a message will be place in the error log,
   to help with debugging.

<P>Some servers, like Microsoft IIS, load the ISA into the server, and
   keep it loaded until memory usage is too high, and it is
   unloaded. Apache currently loads and unloads the ISA for each
   request. This is inefficient, but Apache's request model makes this
   method the only method that currently works. A future release may use
   a more effective loading method.

<P>Apache 1.3a1 currently limits POST and PUT input to 48k per
   request. This is to work around a problem with the ISAPI implementation
   that could result in a denial of service attack. It is expected that
   support for larger uploads will be added soon.

<P>Also, remember that while Apache supports ISAPI Extensions, it does
   not support ISAPI Filters. Support for filters may be added at a later
   date, but no support is planned at this time.</P>

<!--#include virtual="footer.html" -->
</BODY>
</HTML>
